home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Telnet / Terminal 2.2 / Terminal Folder / Dial mc.s < prev    next >
Text File  |  1990-12-31  |  2KB  |  80 lines

  1. /*
  2.     Terminal 2.0
  3.     Script to dial "mc"
  4.  
  5.     This shows how a script can dial a service that uses two or more phone
  6.     numbers. All phone numbers are checked in sequence several times until
  7.     a connection is made.
  8.  
  9.     "Dial mc.s"
  10. */
  11.  
  12. int Numbers = 2;
  13. char *Number[] = { "0049 89 598423", "0049 89 596422" };
  14. int Retries = 3;
  15.  
  16. char Prefix[] = "ATD";
  17. char Setup[] = "AT S7=60 S10=14 S9=12\r";
  18. char Ok[] = "OK\r";
  19.  
  20. int FINE = 0, TIMEOUT = 1, CANCEL = 2, ABORT = 3;
  21.  
  22. /* ----- Hang-up and put modem into command mode ----------------------- */
  23.  
  24. Hangup()
  25. {
  26.     setdtr(0);    /* Negate DTR: modem hangs up */
  27.     pause(60);
  28.     setdtr(1);    /* Assert DTR: now back in command mode */
  29.     pause(60);
  30. }
  31.  
  32. /* ----- Modem reset --------------------------------------------------- */
  33.  
  34. Reset()
  35. {
  36.     int err;
  37.  
  38.     type("ATZ\r");                /* Reset modem */
  39.     if (err = prompt(Ok, 60))
  40.         return err;                /* No modem connected */
  41.     pause(30);
  42.     return FINE;
  43. }
  44.  
  45. /* ----- Dial and wait for "CONNECT" from modem ------------------------ */
  46.  
  47. Dial(int i)
  48. {
  49.     int err;
  50.  
  51.     type(Setup);                        /* Modem setup */
  52.     if (err = prompt(Ok, 60))
  53.         return err;                        /* No modem connected */
  54.     pause(30);
  55.     type("%s%s\r", Prefix, Number[i]);    /* Dial command */
  56.     if (err = prompt("CONNECT", 1800))
  57.         return err;                        /* No modem connected */
  58.     return FINE;
  59. }
  60.  
  61. /* ----- main program -------------------------------------------------- */
  62.  
  63. main()
  64. {
  65.     int i, j, err;
  66.  
  67.     if (Reset())
  68.         return;
  69.     for (j = 0; j < Retries; ++j) {
  70.         err = TIMEOUT;
  71.         for (i = 0; err == TIMEOUT && i < Numbers; ++i)
  72.             if (err = Dial(i))    /* Error, back into command mode */
  73.                 Hangup();
  74.             else {                /* No error, we are connected */
  75.                 beep();
  76.                 return;
  77.             }
  78.     }
  79. }
  80.